if the deleted node was "below" this path, then do not unref all nodes
authorKristian Rietveld <kris@gtk.org>
Fri, 26 Apr 2002 19:55:14 +0000 (19:55 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Fri, 26 Apr 2002 19:55:14 +0000 (19:55 +0000)
Fri Apr 26 21:58:16 2002  Kristian Rietveld  <kris@gtk.org>

        * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
        deleted node was "below" this path, then do not unref all nodes
        between the deleted parent and the node this rowref is pointing too
        (see added comment in gtk_tree_row_ref_deleted_callback),
        (fixes #77977)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktreemodel.c

index 0e22e265ce8e60c446f48dd9fff6f4a4b94c0f9a..5c01883f9931d8fc8d0430146723622a46cfbbc9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Apr 26 21:58:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
+       deleted node was "below" this path, then do not unref all nodes
+       between the deleted parent and the node this rowref is pointing too
+       (see added comment in gtk_tree_row_ref_deleted_callback),
+       (fixes #77977)
+
 2002-04-26  Sven Neumann  <sven@gimp.org>
  
         * tests/testtreecolumns.c
index 0e22e265ce8e60c446f48dd9fff6f4a4b94c0f9a..5c01883f9931d8fc8d0430146723622a46cfbbc9 100644 (file)
@@ -1,3 +1,11 @@
+Fri Apr 26 21:58:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
+       deleted node was "below" this path, then do not unref all nodes
+       between the deleted parent and the node this rowref is pointing too
+       (see added comment in gtk_tree_row_ref_deleted_callback),
+       (fixes #77977)
+
 2002-04-26  Sven Neumann  <sven@gimp.org>
  
         * tests/testtreecolumns.c
index 0e22e265ce8e60c446f48dd9fff6f4a4b94c0f9a..5c01883f9931d8fc8d0430146723622a46cfbbc9 100644 (file)
@@ -1,3 +1,11 @@
+Fri Apr 26 21:58:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
+       deleted node was "below" this path, then do not unref all nodes
+       between the deleted parent and the node this rowref is pointing too
+       (see added comment in gtk_tree_row_ref_deleted_callback),
+       (fixes #77977)
+
 2002-04-26  Sven Neumann  <sven@gimp.org>
  
         * tests/testtreecolumns.c
index 0e22e265ce8e60c446f48dd9fff6f4a4b94c0f9a..5c01883f9931d8fc8d0430146723622a46cfbbc9 100644 (file)
@@ -1,3 +1,11 @@
+Fri Apr 26 21:58:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
+       deleted node was "below" this path, then do not unref all nodes
+       between the deleted parent and the node this rowref is pointing too
+       (see added comment in gtk_tree_row_ref_deleted_callback),
+       (fixes #77977)
+
 2002-04-26  Sven Neumann  <sven@gimp.org>
  
         * tests/testtreecolumns.c
index 0e22e265ce8e60c446f48dd9fff6f4a4b94c0f9a..5c01883f9931d8fc8d0430146723622a46cfbbc9 100644 (file)
@@ -1,3 +1,11 @@
+Fri Apr 26 21:58:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
+       deleted node was "below" this path, then do not unref all nodes
+       between the deleted parent and the node this rowref is pointing too
+       (see added comment in gtk_tree_row_ref_deleted_callback),
+       (fixes #77977)
+
 2002-04-26  Sven Neumann  <sven@gimp.org>
  
         * tests/testtreecolumns.c
index 0e22e265ce8e60c446f48dd9fff6f4a4b94c0f9a..5c01883f9931d8fc8d0430146723622a46cfbbc9 100644 (file)
@@ -1,3 +1,11 @@
+Fri Apr 26 21:58:16 2002  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtktreemodel.c (gtk_tree_row_ref_deleted_callback): if the
+       deleted node was "below" this path, then do not unref all nodes
+       between the deleted parent and the node this rowref is pointing too
+       (see added comment in gtk_tree_row_ref_deleted_callback),
+       (fixes #77977)
+
 2002-04-26  Sven Neumann  <sven@gimp.org>
  
         * tests/testtreecolumns.c
index 8d66e9d23b850244d78f1c94ff85629b686bcfde..925c4eb77a03df62c75e5d63d5050918620e4ede 100644 (file)
@@ -1368,7 +1368,14 @@ gtk_tree_row_ref_deleted_callback (GObject     *object,
          /* We know it affects us. */
          if (path->indices[i] == reference->path->indices[i])
            {
-             gtk_tree_row_reference_unref_path (reference->path, reference->model, reference->path->depth - 1);
+             if (reference->path->depth > path->depth)
+               /* some parent was deleted, trying to unref any node
+                * between the deleted parent and the node the reference
+                * is pointing to is bad, as those nodes are already gone.
+                */
+               gtk_tree_row_reference_unref_path (reference->path, reference->model, path->depth - 1);
+             else
+               gtk_tree_row_reference_unref_path (reference->path, reference->model, reference->path->depth - 1);
              gtk_tree_path_free (reference->path);
              reference->path = NULL;
            }